package Exercicio3;

interface Go {
	public void go();
}

class Stone extends Goban implements Go {
}

class Sente implements Go {
	public void go() {
		System.out.println("go in Sente.");
	}
}

class Goban extends Sente {
	public void go() {
		System.out.println("go in Goban");
	}
}

public class GoTest {

	/*static final int[] a = { 100,200 };

	static final int[] a;
	static {
		a = new int[2];
		a[0] = 100;
		a[1] = 200;
	}*/

	static String nome = "Alexandre";

	static void alpha() {
	}

	void beta() {
		alpha();
	}

	public static void main(String[] args) {
		Sente a = new Sente();
		a.go(); // Vai imprimir go in Sente por que Sente sobrescreve o metodo
				// go da interface go.

		Goban b = new Goban();
		b.go(); // Vai imprimir go in Goban por que Goban sobrescreve o metodo
				// go da class Sente.

		Stone c = new Stone();
		c.go(); // Vai imprimir go in Goban por que Stone extends Goban que
				// sobrescreve o metodo go da interface go.

		Go d = new Goban();
		d.go(); // Vai imprimir go in Goban por que Goban sobrescreve o metodo
				// go da class Sente.
	}
}
